package com.javaeedev.junit;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class SignOnStrutsAction extends Action {

    private Service service;

    public void setService(Service service) {
        this.service = service;
    }

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {
        if(!(form instanceof SignOnForm))
            throw new RuntimeException("Bad ActionForm.");
        SignOnForm f = (SignOnForm)form;
        try {
            service.signon(f.getUsername(), f.getPassword());
            request.getSession().setAttribute("signon", f.getUsername());
            return mapping.findForward("success");
        }
        catch(RuntimeException e) {
            return mapping.findForward("failed");
        }
    }

}
